home *** CD-ROM | disk | FTP | other *** search
- 1000 SCREEN 3 'TOWNSé═ 1000 SCREEN@ 0
- 1010 CONSOLE 0,25,0,1 'TOWNSé═ 1010 CONSOLE 0,25,0
- 1020 WIDTH 80,25
- 1030 CLS 3 'TOWNSé═ 1030 CLS 0
- 1040 DIM BX(2,3),BY(2,3),BL(2,3),BR(2,3) 'ö╜Ä╦ö┬é╠ì└òWüCÆ╖é│üCîXé½èpôx
- 1050 DIM X(3),Y(3) 'ö╜Ä╦ö┬ò\Īùpözù±ò╧Éö
- 1060 DIM NN(2,3) 'âtâBü[âïâhé╔ë₧é╢é╜î⌡é╠æ¼ôx
- 1070 FOR STAGE = 0 TO 2 'ö╜Ä╦ö┬özÆuâfü[â^ô╟é▌é╛é╡
- 1080 FOR I = 0 TO 3
- 1090 READ BX(STAGE,I),BY(STAGE,I)
- 1100 READ BL(STAGE,I),BR(STAGE,I)
- 1110 NEXT
- 1120 NEXT
- 1130 FOR STAGE = 0 TO 2 'î⌡é╠æ¼ôxô╟é▌é╛é╡
- 1140 FOR I = 0 TO 3
- 1150 READ NN(STAGE,I)
- 1160 NEXT
- 1170 NEXT
- 1180 WHILE -1 'û│î└âïü[âv
- 1190 SCORE = 0
- 1200 STAGE = 0
- 1210 WHILE STAGE < 3 '3âXâeü[âWé▄é┼
- 1220 GOSUB *PUTSTAGE 'âXâeü[âWò\Ī
- 1230 GOSUB *RINPUT 'î⌡èpôxôⁿù═
- 1240 GOSUB *PLOT 'î⌡é╠ïOÉ╒é≡é╜é╟éΘ
- 1250 IF LF = 0 THEN GOSUB *SCOREUP ELSE STAGE = 3 'é╜é╟éΦé½éΩé╚éóé╞GAME OVER
- 1260 WEND
- 1270 GOSUB *GAMEOVER 'âQü[âÇüEâIü[âoü[ò\Ī
- 1280 WEND
- 1290 *PUTSTAGE 'âXâeü[âWò\Ī
- 1300 CLS 3 'TOWNSé═ 1300 CLS 0
- 1310 PRINT "ö╜Ä╦ïⁿÉ▄é╦éτéóîéé┐âQü[âÇ"
- 1320 LOCATE 55,0
- 1330 PRINT USING "Stage #";STAGE + 1
- 1340 GOSUB *PUTSCORE 'âXâRâAò\Ī
- 1350 FOR I = 0 TO 3
- 1360 LINE(I*160,16)-(I*160+159,399),1-(I AND 1),BF 'TOWNSé═ü`,399),PSET,1-(I AND 1),BF
- 1370 NEXT
- 1380 LINE(0,16)-(639,399),7,B 'TOWNSé═ ü`(639,399),PSET,7,B
- 1390 FOR I = 0 TO 3 'ö╜Ä╦ö┬ò\Īâïü[âv
- 1400 X(0) = - BL(STAGE,I) / 2 'ö╜Ä╦ö┬é≡é▄é╕î┤ô_ÆåÉSé╔Æué¡
- 1410 Y(0) = -2
- 1420 X(1) = BL(STAGE,I) / 2
- 1430 Y(1) = -2
- 1440 X(2) = BL(STAGE,I) / 2
- 1450 Y(2) = 2
- 1460 X(3) = - BL(STAGE,I) / 2
- 1470 Y(3) = 2
- 1480 R = BR(STAGE,I)
- 1490 FOR J = 0 TO 3 'Æ╕ô_é≡ë±ô]é│é╣éΘ
- 1500 X = X(J)
- 1510 Y = Y(J)
- 1520 GOSUB *ROTATE 'ë±ô]âTâuüEâïü[â`âô
- 1530 X(J) = X + BX(STAGE,I) 'ò╜ìsê┌ô«
- 1540 Y(J) = Y + BY(STAGE,I)
- 1550 NEXT
- 1560 FOR J = 0 TO 2 'Æ╕ô_é≡îïé╘
- 1570 LINE( X(J),Y(J) ) - ( X(J+1),Y(J+1) ) , I + 2 'TOWNSé═ü`Y(J+1)),PSET,I+2
- 1580 NEXT
- 1590 LINE( X(3),Y(3) ) - ( X(0),Y(0) ) , I + 2 'TOWNSé═ü`Y(0)),PSET,I+2
- 1600 PAINT ( BX(STAGE,I) , BY(STAGE,I) ) , I + 2 'ôαæñé≡ôhéΘ
- 1610 NEXT
- 1620 CIRCLE ( 10 , 200 ) , 10 , 6 'â^ü[âQâbâgò\Ī
- 1630 PAINT ( 10 , 200 ) , 6 , 6
- 1640 RETURN
- 1650 *ROTATE
- 1660 RA = R * 3.1416 / 180 'ôxü¿âëâWâAâô
- 1670 ROTATEX = X * COS ( RA ) - Y * SIN ( RA ) 'ë±ô]
- 1680 ROTATEY = X * SIN ( RA ) + Y * COS ( RA )
- 1690 X = ROTATEX
- 1700 Y = ROTATEY
- 1710 RETURN
- 1720 *PUTSCORE 'âXâRâAò\Ī
- 1730 LOCATE 65,0
- 1740 PRINT USING "SCORE #####";SCORE
- 1750 RETURN
- 1760 *RINPUT
- 1770 F = 0 'ôⁿù═Æåé⌐é╟éñé⌐é╠âtâëâO
- 1780 LR = 0
- 1790 WHILE F = 0
- 1800 C = 6 'ò√îⁿé≡Īé╖âëâCâôé≡ò\Ī
- 1810 GOSUB *PUTLINE
- 1820 K$ = ""
- 1830 WHILE K$ = ""
- 1840 K$ = INKEY$
- 1850 IF K$ = "8" THEN C = 0 : GOSUB *PUTLINE : LR = LR + 2.5 : IF LR > 90 THEN LR = 90 '8âLü[é┼ëEò√îⁿé╓èpôxé≡ò╧éªéΘ
- 1860 IF K$ = "2" THEN C = 0 : GOSUB *PUTLINE : LR = LR - 2.5 : IF LR < -90 THEN LR = -90 '2âLü[é┼ì╢ò√îⁿé╓èpôxé≡ò╧éªéΘ
- 1870 IF K$ = " " THEN F = 1 'âXâyü[âXüEâLü[é┼ôⁿù═ÅIù╣
- 1880 WEND
- 1890 C = 6
- 1900 GOSUB *PUTLINE
- 1910 WEND
- 1920 C = 0
- 1930 GOSUB *PUTLINE 'ò√îⁿé≡Īé╖âëâCâôé≡Å┴é╖
- 1940 LINE ( 0,16 ) - ( 639,399 ) , 7 , B 'TOWNSé═ü`(639,399),PSET,7,B
- 1950 RETURN
- 1960 *PUTLINE 'èpôxé╔ë₧é╢é─âëâCâôé≡ò\Īé╖éΘ
- 1970 LINE ( 638,200 ) - ( 638 - 40 * COS ( LR * 3.1416 / 180 ) , 200 - 40 * SIN ( LR * 3.1416 / 180 ) ) , C 'TOWNSé═ü`/180)),PSET,C
- 1980 RETURN
- 1990 *PLOT
- 2000 LX = 638 'Åëè·ì└òWÉ▌ÆΦ
- 2010 LY = 200
- 2020 OLDC = 0
- 2030 LL = 10000 'ô₧ÆBïùùúâèâ~âbâg
- 2040 LF = 1
- 2050 BANC = 0
- 2060 KUC = 0
- 2070 MENC = 0
- 2080 WHILE LL > 0 AND LF = 1
- 2090 NLX = LX - .7 * COS ( LR * 3.1416 / 180 ) 'èpôxé╔ë₧é╢é─ì└òWé≡ò╧ìX
- 2100 NLY = LY - .7 * SIN ( LR * 3.1416 / 180 )
- 2110 IF INT ( NLX ) <> INT ( LX ) OR INT ( NLY ) <> INT ( LY ) THEN GOSUB *CHECK 'âOâëâtâBâbâNëµû╩Åπé┼é╠ì└òWé¬ò╧ë╗é╡é╜éτÅ╒ô╦â`âFâbâN
- 2120 LX = NLX 'ì└òWé≡ìXÉV
- 2130 LY = NLY
- 2140 PSET ( INT ( LX ) , INT ( LY ) ) , 6 'ïOÉ╒é≡ò`é¡
- 2150 LL = LL - 1 'ô₧ÆBïùùúâJâEâôâ^ò╧ìX
- 2160 WEND
- 2170 RETURN
- 2180 *BACK 'ö╜Ä╦îπé╠ÉVé╜é╚ò√îⁿé╓ì└òWé≡ò╧ìX
- 2190 NLX = LX - .7 * COS ( LR * 3.1416 / 180 )
- 2200 NLY = LY - .7 * SIN ( LR * 3.1416 / 180 )
- 2210 RETURN
- 2220 *CHECK 'Å╒ô╦â`âFâbâN
- 2230 IF BANC > 0 THEN BANC = BANC - 1
- 2240 IF KUC > 0 THEN KUC = KUC - 1
- 2250 IF MENC > 0 THEN MENC = MENC - 1
- 2260 C = POINT ( INT ( NLX ) , INT ( NLY ) ) 'TOWNSé═ 2260 GET@A(INT(NLX),INT(NLY))-(INT(NLX),INT(NLY)),Z%:C=Z%(0)-8:IF C<0 THEN C=0
- 2270 IF C = 7 AND KABEC = 0 THEN GOSUB *KABEHANSYA : GOSUB *BACK 'öÆé═ÿg
- 2280 IF C = 6 THEN GOSUB *TARGET 'ë⌐ÉFé═â^ü[âQâbâgé╠ë┬ö\ɽé¬éáéΘ
- 2290 IF C > 1 AND C < 6 AND BANC = 0 THEN GOSUB *BLOCKHANSYA : GOSUB *BACK : BANC = 10 'ìòüCÉ┬ê╚èOé═ö╜Ä╦ö┬ö╜Ä╦
- 2300 IF INT ( NLX ) = 160 OR INT ( NLX ) = 320 OR INT ( NLX ) = 480 THEN GOSUB *KUSSETSU : GOSUB *BACK : KUC = 50
- 2310 RETURN
- 2320 *KUSSETSU
- 2330 KP = INT( ( NLX - 50 ) / 160 ) 'ïⁿÉ▄é╡é╜ÅΩÅèé╔æ╬ë₧é╖éΘî⌡é╠æ¼ôxé≡ïüé▀éΘ
- 2340 LR = ( LR + 360 ) MOD 360
- 2350 IF LR < 90 OR LR > 270 THEN GOSUB *R2L ELSE GOSUB *L2R
- 2360 RETURN
- 2370 *R2L
- 2380 NA = NN(STAGE,KP+1)
- 2390 NB = NN(STAGE,KP)
- 2400 R = NB / NA * SIN ( LR / 180 * 3.1416 )
- 2410 IF ABS(R) >= 1 THEN GOSUB *MENHANSYA1 : RETURN
- 2420 LR = ATN ( R / SQR ( - R * R + 1 ) ) 'ïⁿÉ▄îπé╠èpôxé≡îvÄZ
- 2430 LR = LR * 180 / 3.1416
- 2440 RETURN
- 2450 *L2R
- 2460 NA = NN(STAGE,KP)
- 2470 NB = NN(STAGE,KP+1)
- 2480 R = ( 180 - LR ) * 3.1416 / 180
- 2490 R = NB / NA * SIN ( R )
- 2500 IF ABS(R) >= 1 THEN GOSUB *MENHANSYA2 : RETURN
- 2510 NR = ATN ( R / SQR ( - R * R + 1 ) )
- 2520 LR = 180 - NR * 180 / 3.1416
- 2530 RETURN
- 2540 *MENHANSYA1
- 2550 IF MENC > 0 THEN RETURN
- 2560 MENC = 20
- 2570 LR = 180 - LR
- 2580 RETURN
- 2590 *MENHANSYA2
- 2600 IF MENC > 0 THEN RETURN
- 2610 MENC = 20
- 2620 LR = 360 + 180 - LR
- 2630 RETURN
- 2640 *KABEHANSYA
- 2650 BEEP 1
- 2660 IF INT ( NLX ) = 0 THEN LR = - LR + 180 'ò╟é╓é╠Éiôⁿò√îⁿé╔ë₧é╢é─ö╜Ä╦èpîvÄZ
- 2670 IF INT ( NLY ) = 16 THEN LR = - LR + 360
- 2680 IF INT ( NLX ) = 639 THEN LR = 180 - LR
- 2690 IF INT ( NLY ) = 399 THEN LR = 360 - LR
- 2700 LR = LR MOD 360
- 2710 BEEP 0
- 2720 RETURN
- 2730 *BLOCKHANSYA
- 2740 BEEP 1
- 2750 LR = 2 * BR( STAGE , C - 2 ) - LR 'ö╜Ä╦ö┬é╠èpôxé⌐éτö╜Ä╦èpé≡îvÄZ
- 2760 LR = ( LR + 360 ) MOD 360
- 2770 BEEP 0
- 2780 RETURN
- 2790 *TARGET
- 2800 IF SQR ( ( INT ( NLX ) - 10 ) ^ 2 + ( INT ( NLY ) - 200 ) ^ 2 ) < 10 THEN LF = 0 'â^ü[âQâbâgé⌐éτé╠Æ╝Éⁿïùùúé≡Æ▓é╫éΘ
- 2810 RETURN
- 2820 *SCOREUP 'â^ü[âQâbâgé╔û╜Æå
- 2830 BEEP 1
- 2840 CIRCLE ( 10 , 200 ) , 10 , 2 'â^ü[âQâbâgé≡É╘é¡ôhéΘ
- 2850 PAINT ( 10 , 200 ) , 2 , 2
- 2860 LOCATE 29,13
- 2870 PRINT "éréöéüéçéà ébéîéàéüéÆ"
- 2880 BEEP 0
- 2890 SCORE = SCORE + LL 'æ¼é¡û╜Æåé│é╣é╜ò√é¬ìéô╛ô_
- 2900 GOSUB *PUTSCORE
- 2910 WHILE INKEY$ = "" 'âLü[é¬ëƒé│éΩéΘé▄é┼æ╥é┬
- 2920 WEND
- 2930 STAGE = STAGE + 1 'é┬é¼é╠âXâeü[âWé╓
- 2940 IF STAGE > 2 THEN F = 1 'æSòöâNâèâAé╡é╜éτâQü[âÇüEâIü[âoü[
- 2950 RETURN
- 2960 *GAMEOVER 'âQü[âÇüEâIü[âoü[ò\Ī
- 2970 LOCATE 29,13
- 2980 PRINT " éféüéìéà énéûéàéÆ "
- 2990 FOR I = 0 TO 999
- 3000 BEEP 1
- 3010 BEEP 0
- 3020 NEXT
- 3030 WHILE INKEY$ = "" 'âLü[é¬ëƒé│éΩéΘé▄é┼æ╥é┬
- 3040 WEND
- 3050 RETURN
- 3060 'ö╜Ä╦ö┬é╠ì└òWüCÆ╖é│üCèpôxé╠âfü[â^üi4ûçò¬ü~5âXâeü[âWüj
- 3070 DATA 450,280,200,150
- 3080 DATA 100,100,100,135
- 3090 DATA 200,280,250,65
- 3100 DATA 430,120,200,85
- 3110 '
- 3120 DATA 150,150,100,160
- 3130 DATA 450,350,150,10
- 3140 DATA 350,200,200,45
- 3150 DATA 50,350,100,20
- 3160 '
- 3170 DATA 120,320,150,130
- 3180 DATA 280,200,200,70
- 3190 DATA 450,350,200,170
- 3200 DATA 430,100,150,120
- 3210 'âtâBü[âïâhé╠î⌡é╠æ¼ôx
- 3220 DATA 0.4,1,0.95,1
- 3230 DATA 0.5,1,0.9,1
- 3240 DATA 0.6,1,0.8,1